//package com.hzwq.demo2.interceptor;
//
//
//import com.hzwq.demo2.role.entity.Role;
//import com.hzwq.demo2.user.entity.User;
//import org.springframework.web.servlet.HandlerInterceptor;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import javax.servlet.http.HttpSession;
//import java.util.ArrayList;
//import java.util.List;
//
//
///**
// * 登录拦截器
// */
//public class LoginInterceptor implements HandlerInterceptor {
//
//    /**
//     * preHandle方法在没次控制器处理请求之前，被框架自动调用
//     *
//     * @param request
//     * @param response
//     * @param handler
//     * @return
//     * @throws Exception
//     */
//    @Override
//    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//
//        response.setContentType("text/html;charset=utf-8");
//        String requestURI = request.getRequestURI();
//        User user = (User) request.getSession().getAttribute("user");
//        //未登录，重定向到登录页
//        if (user == null) {
//            System.out.println(111);
//            response.sendRedirect("/demo2/login");
//            return false;
//        } else {
////判断访问的是那个url
//            String[] split = requestURI.split("/");
//            List<Role> roleList = user.getRoleList();
//            System.out.println(roleList);
//            ArrayList<String> nameList = new ArrayList<>();
//            //知道这个user都有哪些权限
//            roleList.forEach(n->nameList.add(n.getRoleName()));
//            System.out.println(nameList);
//            //进行权限判断
//            if(nameList.contains("超级管理员")){
//                return true;
//            }else{
//                if (split[split.length-2].equals("user")||split[split.length-2].equals("role")){
//                    return true;
//                }else{
//                    response.getWriter().write("<script>alert('您没有该权限！'); window.location='../NoPer'; window.close();</script>");
//                    response.getWriter().flush();
//                }
//            }
//
//        }
//        return true;
//    }
//}
